package com.example.liyun.joy;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.liyun.joy.news.TabViewPagerAdapter;
import com.example.liyun.joy.news.tabFragment;

import java.util.ArrayList;
import java.util.List;


@SuppressLint("ValidFragment")
public class ViewPagerFragment extends Fragment {
    private TabLayout tabLayout=null;
    private ViewPager viewPager;//fragment内嵌套的viewpage
    private Fragment tabFragment;//需要加载的Fragment
    private List<Fragment> tabListFragment=new ArrayList<>();
    private List<String> tabTitles=new ArrayList<>();
    private TabViewPagerAdapter mTabVPAdapter;

    private String[] strs;
    private String fragmentName;
    public View view;//返回显示的View
    public Activity mActivity;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mActivity= (Activity) context;
        Log.d("getActivity", "ViewpagerFragment"+String.valueOf((getActivity()!=null)));
    }

    //当有不同的数据需要适配时，可以创建一个返回Fragment的方法传入数据

    /**
     *
     * @param name  指的是需要加载的fragment视图
     */
    @SuppressLint("ValidFragment")
    public ViewPagerFragment(String name){
        fragmentName=name;
        /*//初始化数据
        strs=new String[30];
        for (int i=0;i<30;i++){
            int index=i+1;
            strs[i]=name+index;
        }*/


    }

    public String[] getStrs() {
        return strs;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view=inflater.inflate(R.layout.navigation_fragment_layout,container,false);
        tabLayout=view.findViewById(R.id.tablayout);
        viewPager=view.findViewById(R.id.tab_viewpager);
        initTabFragment();
        return view;
    }

    private void initTabFragment() {
        if (fragmentName.equals("资讯Fragment")){//判断如果是咨询模块，则显示对应的Fragment
            tabTitles.add("头条");
            tabTitles.add("社会");
            tabTitles.add("国内");
            tabTitles.add("国际");
            tabTitles.add("娱乐");
            tabTitles.add("体育");
            tabTitles.add("军事");
            tabTitles.add("科技");
            tabTitles.add("财经");
            tabTitles.add("时尚");
            tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);//这里要特别注意下,如果tab超出了屏幕宽度，设置成fixed，那么tab就不会显示
            //创建tabTitle对应的fragment
            for (int i=0;i<tabTitles.size();i++){
                tabFragment= new tabFragment(mActivity,tabTitles.get(i));//到时候数据拿下来后，可以在这里传入数据，或者看看还有没有别的办法可以传入
                tabListFragment.add(tabFragment);
            }
            mTabVPAdapter=new TabViewPagerAdapter(getChildFragmentManager());
            mTabVPAdapter.setTabListFragmentandtab(tabListFragment,tabTitles);
            viewPager.setAdapter(mTabVPAdapter);
            //将ViewPager与TabLayout绑定
            tabLayout.setupWithViewPager(viewPager);
            for (int i=0;i<tabTitles.size();i++){
                tabLayout.addTab(tabLayout.newTab());
                tabLayout.getTabAt(i).setText(tabTitles.get(i));
            }
        }else {//显示段子模块，这里只需要展示一个fragment，所以不需要tabLayout，所以在这可以把他隐藏掉
            tabLayout.setVisibility(View.GONE);
            tabFragment=new tabFragment(mActivity,"段子");//到时候数据拿下来后，可以在这里传入数据，或者看看还有没有别的办法可以传入
            tabListFragment.add(tabFragment);
            mTabVPAdapter=new TabViewPagerAdapter(getChildFragmentManager());
            mTabVPAdapter.setTabListFragment(tabListFragment);
            viewPager.setAdapter(mTabVPAdapter);
        }



    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }

}
